<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 私有成员 私有属性和私有方法;
        // 私有成员的修饰符 #

        // ES5 私有
        // function Person(){
        //     this.name = '张三'; // 公共属性
        //     let _weight = '100kg';// 私有属性
        //     console.log(_weight);
        // }


        // let zhangsan = new Person();
        // console.log(zhangsan.name);




        // ES6 私有
        // 私有成员:只能类的内部调用,子类 和外部都不能调用
        class Person{
            #weight = '100kx';// 私有属性
            constructor(name){
                this.name = name;
                this.age = 20;
            }
            // 利用公有方法调用私有成员
            getweight (){
                console.log(this.#weight);
            }
            #fn(){
                console.log('私有方法');
            }
        }

        let zhangsan  = new Person('张三');
        console.log(zhangsan);
        // console.log(zhangsan.#weight);//私有属性获取不了报错
        // zhangsan.#fn(); // 私有方法获取不了报错
        // zhangsan.getweight();利用公有方法调用私有成员






    </script>    
</body>
</html>